package com.hjs.mapper;

import com.hjs.bean.DamageConditionEvaluationStandard;
import com.hjs.bean.DamageStandard;
import com.hjs.bean.DrivingQualityEvaluationStandard;
import com.hjs.bean.OverviewStandard;

import java.util.List;

/**
 * @author violetfreesia
 * @date 2020/06/16
 */
public interface StandardMapper {
    /**
     * 添加一条路面损坏单项扣分标准
     *
     * @param obj 需要新增的扣分标准对象(id=null)
     * @return 返回是否添加成功
     */
    boolean addOneDamageStandard(DamageStandard obj);

    /**
     * 添加一条行驶质量标准
     *
     * @param obj 需要新增的行驶质量标准对象(id=null)
     * @return 返回是否添加成功
     */
    boolean addOneDrivingQualityEvaluationStandard(DrivingQualityEvaluationStandard obj);

    /**
     * 添加一条综合评价标准
     *
     * @param obj 需要新增的综合评价标准对象(id=null)
     * @return 返回是否添加成功
     */
    boolean addOneOverviewStandard(OverviewStandard obj);

    /**
     * 添加一条损坏状况标准
     *
     * @param obj 需要新增的损坏状况标准对象(id=null)
     * @return 返回是否添加成功
     */
    boolean addOneDamageConditionEvaluationStandard(DamageConditionEvaluationStandard obj);

    /**
     * 通过Id删除一条路面损坏单项扣分标准
     *
     * @param id 需要删除那条扣分标准的id
     * @return 返回是否删除成功
     */
    boolean deleteOneDamageStandardById(int id);

    boolean deleteOneDrivingQualityEvaluationStandardById(int id);

    boolean deleteOneOverviewStandardById(int id);

    boolean deleteOneDamageConditionEvaluationStandardById(int id);

    /**
     * 通过id修改评分标准
     *
     * @param obj 需要修改得那条属性的全部信息包括id
     * @return 返回是否更新成功
     */
    boolean updateOneDamageStandardById(DamageStandard obj);

    boolean updateOneDrivingQualityEvaluationStandard(DrivingQualityEvaluationStandard obj);

    boolean updateOneOverviewStandard(OverviewStandard obj);

    boolean updateOneDamageConditionEvaluationStandard(DamageConditionEvaluationStandard obj);

    /**
     * 获取所有的评分标准
     *
     * @return 返回获取到的扣分标准对象列表
     */
    List<DamageStandard> getAllDamageStandard();

    List<DrivingQualityEvaluationStandard> getAllDrivingQualityEvaluationStandard();

    List<OverviewStandard> getAllOverviewStandard();

    List<DamageConditionEvaluationStandard> getAllDamageConditionEvaluationStandard();

    /**
     * 获取某一损害类型的全部扣分标准
     *
     * @param damageTypeId 损害类型ID
     * @return 返回获取到的扣分标准对象列表
     */
    List<DamageStandard> getAllOnePointMinusByDamageTypeId(int damageTypeId);

    /**
     * 通过id获取一条评分标准
     *
     * @param id 待获取评分标准的id
     * @return 返回获取到的评分标准对象
     */
    DamageStandard getOneDamageStandardById(int id);

    DrivingQualityEvaluationStandard getOneDrivingQualityEvaluationStandardById(int id);

    OverviewStandard getOneOverviewStandardById(int id);

    DamageConditionEvaluationStandard getOneDamageConditionEvaluationStandardById(int id);


}
